Distributed ledger systems (DLSs), which can also be referred to as consensus networks, and/or blockchain networks, enable participating entities to securely, and immutably store data. DLSs are commonly referred to as blockchain networks without referencing any particular user case. Examples of types of blockchain networks can include public blockchain networks, private blockchain networks, and consortium blockchain networks. A consortium blockchain network is provided for a select group of entities, which control the consensus process, and includes an access control layer.
The Elliptic Curve Cryptosystem (ECC) includes a variant of digital signature algorithms that use elliptic curve cryptography. The ECC algorithms are based on solving elliptic curve discrete logarithm problems, and can be used in generating digital signatures. For example, suppose user A wants to send an encrypted message to user B, user A can first create a private key-public key pair that is calculated by a base point from the elliptic curve whose parameters are pre-agreed on by both user A and user B. Then user A signs the message with her private key, and sends the signed message to user B. Upon the receipt of the signed message, user B can verify the signature by using the public key of user A. If the verification succeeds, user B can confirm that the received message is not tempered during the transmission. The security of the ECC algorithms stems from the difficulty of solving the logarithm problem. Comparing with the Rivest-Shamir-Adleman (RSA) algorithm, the key length of the ECC algorithm is shorter, and the encryption and decryption process are faster and require a smaller calculation storage space. For example, the difficulty of a 210-bit ECC algorithm is comparable to a 2048-bit RSA algorithm.
Issues can be encountered when applying ECC algorithms in blockchain related applications. Each blockchain node may be associated with more than one public key. Therefore, in the previously described example, if node A is associated with more than one public key, to verify a message signed by node A, node B has to try each of node A's public keys, resulting in a longer processing time. What is needed is a technique to bypass these issues in the existing technology.